package day08;

import org.junit.After;
import org.junit.Before;
import org.junit.jupiter.api.*;

import static org.junit.jupiter.api.Assertions.*;

class Demo01Test {

    /*
    @Test 修饰，是测试用例。
    测试triangleType，传不同的参数，检查返回值是否正确。
    使用assert校验预期结果与实际结果是否一致。
     */
    @org.junit.jupiter.api.Test
    void triangleType() {
        assertEquals("参数错误", Demo01.triangleType(0, 1, 1));
        assertEquals("等边三角形", Demo01.triangleType(1, 1, 1));
        assertEquals("等腰三角形", Demo01.triangleType(2, 2, 3));
        assertEquals("一般三角形", Demo01.triangleType(2, 3, 4));
        assertEquals("不是三角形", Demo01.triangleType(1, 1, 4));
    }

    /*
    准备环境放到测试前置中，清理环境放到后置中
     */
    @BeforeAll
    static void fun1() {
        // 用JUnit做界面自动化测试，打开浏览器放前置中
        System.out.println("所有用例前执行");
    }

    @AfterAll
    static void fun2() {
        // 关闭浏览器放后置中
        System.out.println("所有用例后执行");
    }

    @BeforeEach
    public void func3() { // 每个用例都有的操作，可以提取到方法中，减少重复代码
        System.out.println("每个用例前执行");
    }

    @AfterEach
    public void func4() {
        System.out.println("每个用例后执行");
    }

    @Test// 同 @org.junit.jupiter.api.Test
    void testScript1() {
        System.out.println("脚本1");
    }

    @Test
    void testScript2() {
        System.out.println("脚本2");
    }


}